package nl.weeaboo.sh.level;

import nl.weeaboo.game.GameLevel;
import nl.weeaboo.game.gl.GLManager;
import nl.weeaboo.game.input.UserInput;
import nl.weeaboo.sh.Game;
import nl.weeaboo.sh.danmaku.UniverseAdapter;

public abstract class AbstractLevel extends GameLevel {

	private UniverseAdapter universeAdapter;
	
	public AbstractLevel(Game game) {
		super(game);
	}
	
	//Functions
	public Game getGame() { return (Game)super.getGame(); }
	public abstract void update(UserInput input, float dt);
	public abstract void drawBackground(GLManager glm, int w, int h);
	public abstract void drawForeground(GLManager glm, int w, int h);
	
	//Getters
	public abstract boolean isForegroundOpaque();
	
	public UniverseAdapter getUniverseAdapter() {
		return universeAdapter;
	}
	
	//Setters
	public void setUniverseAdapter(UniverseAdapter u) {
		this.universeAdapter = u;
	}
	
}
